// const ejs = require('ejs')

// module.exports = async (ctx, renderer, template) => {
//   ctx.headers['Content-Type'] = 'text/html'

//   // context 用在服务端渲染时候把它传入vue-server-renderer里面去的
//   // vue-server-renderer拿到contexgt,渲染完成之后在上面插入一堆的属性
//   // 让我们可以拿来很方便的渲染我们的HTML，它里面会包括我们客户端的js路径、css路径
//   const context = { url: ctx.path }

//   try {
//     const appString = renderer.renderToString(context)
//     const html = ejs.render(template, {
//       appString,
//       style: context.renderStyles(),
//       scripts: context.renderScripts()
//     })
//     ctx.body = html
//   } catch (err) {
//     console.log('render error', err)
//     throw err
//   }
// }

const ejs = require('ejs')

module.exports = async (ctx, renderer, template) => {
  ctx.headers['Content-Type'] = 'text/html'

  const context = { url: ctx.path }

  try {
    const appString = await renderer.renderToString(context)

    const {
      title
    } = context.meta.inject()

    const html = ejs.render(template, {
      appString,
      style: context.renderStyles(),
      scripts: context.renderScripts(),
      title: title.text()
      // initalState: context.renderState()
    })

    ctx.body = html
  } catch (err) {
    console.log('render error', err)
    throw err
  }
}
